home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS05.ADF / menudemo / menu.c < prev    next >
C/C++ Source or Header  |  1986-01-15  |  19KB  |  676 lines

  1.  
  2. /* menu.c AmigaLink 1/25/86 */
  3.  
  4. #include "standard.h"
  5.  
  6. #define MENUPROJECT 0
  7. #define MENUEDIT 1 
  8. #define MENUSTYLES 2
  9. #define MENUCOLORS 3 
  10.  
  11. #define BLUE 0
  12. #define WHITE 1
  13. #define BLACK 2
  14. #define RED 3
  15.  
  16.  
  17. struct TextAttr Topaz60 = {
  18.         "topaz.font",
  19.         TOPAZ_SIXTY, 
  20.         FS_NORMAL,
  21.         FPF_ROMFONT
  22. };
  23.  
  24.  
  25. struct TextAttr TopazI = {
  26.         "topaz.font",
  27.         TOPAZ_SIXTY, 
  28.         FSF_ITALIC,  
  29.         FPF_ROMFONT  
  30. };
  31.  
  32. struct TextAttr TopazB = {
  33.         "topaz.font",
  34.         TOPAZ_SIXTY, 
  35.         FSF_BOLD,    
  36.         FPF_ROMFONT  
  37. };
  38.  
  39. struct TextAttr TopazU = {
  40.         "topaz.font",
  41.         TOPAZ_SIXTY, 
  42.         FSF_UNDERLINED,
  43.         FPF_ROMFONT  
  44. };
  45.  
  46. struct IntuiText projectext[] = {
  47.   {
  48.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  49.     0, 0,      /* LeftEdge, TopEdge */
  50.     NULL,      /* ITextFont */
  51.     "New",          /* IText */
  52.     NULL       /* NextText */
  53.   },
  54.   {
  55.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  56.     0, 0,      /* LeftEdge, TopEdge */
  57.     NULL,      /* ITextFont */
  58.     "Open",         /* IText */
  59.     NULL       /* NextText */
  60.   },
  61.   {
  62.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  63.     0, 0,      /* LeftEdge, TopEdge */
  64.     NULL,      /* ITextFont */
  65.     "Save",         /* IText */
  66.     NULL       /* NextText */
  67.   },
  68.   {
  69.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  70.     0, 0,      /* LeftEdge, TopEdge */
  71.     NULL,      /* ITextFont */
  72.     "Save As",      /* IText */
  73.     NULL       /* NextText */
  74.   },
  75.   {
  76.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  77.     0, 0,      /* LeftEdge, TopEdge */
  78.     NULL,      /* ITextFont */
  79.     "Print",        /* IText */
  80.     NULL       /* NextText */
  81.   }
  82.   {
  83.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  84.     0, 0,      /* LeftEdge, TopEdge */
  85.     NULL,      /* ITextFont */
  86.     "Print As",          /* IText */
  87.     NULL       /* NextText */
  88.   }
  89.   {
  90.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  91.     0, 0,      /* LeftEdge, TopEdge */
  92.     NULL,      /* ITextFont */
  93.     "Quit",         /* IText */
  94.     NULL       /* NextText */
  95.   }
  96. };
  97.  
  98. struct IntuiText printsubtext[]= {
  99. {
  100.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  101.     0, 0,      /* LeftEdge, TopEdge */
  102.     NULL,      /* ITextFont */
  103.     "Auto-size",    /* IText */
  104.     NULL       /* NextText */
  105.   }
  106. {
  107.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  108.     0, 0,      /* LeftEdge, TopEdge */
  109.     NULL,      /* ITextFont */
  110.     "Small",        /* IText */
  111.     NULL       /* NextText */
  112.   }
  113. {
  114.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  115.     0, 0,      /* LeftEdge, TopEdge */
  116.     NULL,      /* ITextFont */
  117.     "Medium",       /* IText */
  118.     NULL       /* NextText */
  119.   }
  120. {
  121.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  122.     0, 0,      /* LeftEdge, TopEdge */
  123.     NULL,      /* ITextFont */
  124.     "Large",        /* IText */
  125.     NULL       /* NextText */
  126.   }
  127. };
  128.  
  129. struct IntuiText printsubtext2[]= {
  130. {
  131.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  132.     CHECKWIDTH, 0,       /* LeftEdge, TopEdge */
  133.     NULL,      /* ITextFont */
  134.     "Graphic",      /* IText */
  135.     NULL       /* NextText */
  136.   }
  137. {
  138.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  139.     CHECKWIDTH, 0,       /* LeftEdge, TopEdge */
  140.     NULL,      /* ITextFont */
  141.     "Draft",        /* IText */
  142.     NULL       /* NextText */
  143.   }
  144. };
  145.  
  146. struct IntuiText editext[] = {
  147.   {
  148.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  149.     0, 0,      /* LeftEdge, TopEdge */
  150.     NULL,      /* ITextFont */
  151.     "Undo",         /* IText */
  152.     NULL       /* NextText */
  153.   },
  154.   {
  155.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  156.     0, 0,      /* LeftEdge, TopEdge */
  157.     NULL,      /* ITextFont */
  158.     "Cut",          /* IText */
  159.     NULL       /* NextText */
  160.   },
  161.   {
  162.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  163.     0, 0,      /* LeftEdge, TopEdge */
  164.     NULL,      /* ITextFont */
  165.     "Copy",         /* IText */
  166.     NULL       /* NextText */
  167.   },
  168.   {
  169.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  170.     0, 0,      /* LeftEdge, TopEdge */
  171.     NULL,      /* ITextFont */
  172.     "Paste",        /* IText */
  173.     NULL       /* NextText */
  174.   },
  175.   {
  176.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  177.     0, 0,      /* LeftEdge, TopEdge */
  178.     NULL,      /* ITextFont */
  179.     "Erase",        /* IText */
  180.     NULL       /* NextText */
  181.   },
  182. };
  183.  
  184. struct IntuiText styletext[] = {
  185.   {
  186.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  187.     CHECKWIDTH, 0,  /* LeftEdge, TopEdge */
  188.     NULL,      /* ITextFont */
  189.     "Plain",        /* IText */
  190.     NULL       /* NextText */
  191.   },
  192.   {
  193.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  194.     CHECKWIDTH, 0,  /* LeftEdge, TopEdge */
  195.     &TopazI,        /* ITextFont */
  196.     "Italic",       /* IText */
  197.     NULL       /* NextText */
  198.   },
  199.   {
  200.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  201.     CHECKWIDTH, 0,  /* LeftEdge, TopEdge */
  202.     &TopazB,        /* ITextFont */
  203.     "Bold",         /* IText */
  204.     NULL       /* NextText */
  205.   },
  206.   {
  207.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  208.     CHECKWIDTH, 0,  /* LeftEdge, TopEdge */
  209.     &TopazU,        /* ITextFont */
  210.     "Underline",    /* IText */
  211.     NULL       /* NextText */
  212.   }
  213. };
  214.  
  215. struct IntuiText formatext[] = {
  216.   {
  217.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  218.     0, 0,      /* LeftEdge, TopEdge */
  219.     NULL,      /* ITextFont */
  220.     "Paper Color",  /* IText */
  221.     NULL       /* NextText */
  222.   },
  223.   {
  224.     BLUE, WHITE, JAM2,   /* FrontPen, BackPen, DrawMode */
  225.     0, 0,      /* LeftEdge, TopEdge */
  226.     NULL,      /* ITextFont */
  227.     "Pen Color",    /* IText */
  228.     NULL       /* NextText */
  229.   },
  230. };
  231.  
  232. struct IntuiText colortext[] = {
  233.   {
  234.     BLUE, 0 , JAM2, /* FrontPen, BackPen, DrawMode */
  235.     CHECKWIDTH, 0,  /* LeftEdge, TopEdge */
  236.     NULL,      /* ITextFont */
  237.     "   ",          /* IText */
  238.     NULL       /* NextText */
  239.   },
  240.   {
  241.     BLUE, 1, JAM2,  /* FrontPen, BackPen, DrawMode */
  242.     CHECKWIDTH, 0,  /* LeftEdge, TopEdge */
  243.     NULL,      /* ITextFont */
  244.     "   ",          /* IText */
  245.     NULL       /* NextText */
  246.   },
  247.   {
  248.     BLUE, 2, JAM2,  /* FrontPen, BackPen, DrawMode */
  249.     CHECKWIDTH, 0,  /* LeftEdge, TopEdge */
  250.     NULL,      /* ITextFont */
  251.     "   ",          /* IText */
  252.     NULL       /* NextText */
  253.   },
  254.   {
  255.     BLUE, 3, JAM2,  /* FrontPen, BackPen, DrawMode */
  256.     CHECKWIDTH, 0,  /* LeftEdge, TopEdge */
  257.     NULL,      /* ITextFont */
  258.     "   ",          /* IText */
  259.     NULL       /* NextText */
  260.   }
  261. };
  262.     
  263. struct MenuItem printsubitems[] ={
  264.   {
  265.     &printsubitems[1],   /* next item */
  266.     110, 0, 110, 9, /* LeftEdge, TopEdge, Width, Height */
  267.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  268.     0,              /* mutual exclude */
  269.     (APTR)&printsubtext[0],/* ItemFill */
  270.     NULL,      /* SelectFill */
  271.     NULL,      /* Command */
  272.     NULL,      /* SubItem */
  273.     NULL       /* NextSelect */
  274.   },
  275.   {
  276.     &printsubitems[2],   /* next item */
  277.     110, 10, 110, 9,     /* LeftEdge, TopEdge, Width, Height */
  278.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  279.     0,              /* mutual exclude */
  280.     (APTR)&printsubtext[1],/* ItemFill */
  281.     NULL,      /* SelectFill */
  282.     NULL,      /* Command */
  283.     NULL,      /* SubItem */
  284.     NULL       /* NextSelect */
  285.   },
  286.   {
  287.     &printsubitems[3],        /* next item */
  288.     110, 20, 110, 9,     /* LeftEdge, TopEdge, Width, Height */
  289.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  290.     0,              /* mutual exclude */
  291.     (APTR)&printsubtext[2],/* ItemFill */
  292.     NULL,      /* SelectFill */
  293.     NULL,      /* Command */
  294.     NULL,      /* SubItem */
  295.     NULL       /* NextSelect */
  296.   },
  297.   {
  298.     NULL,      /* next item */
  299.     110, 30, 110, 9,     /* LeftEdge, TopEdge, Width, Height */
  300.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  301.     0,              /* mutual exclude */
  302.     (APTR)&printsubtext[3],/* ItemFill */
  303.     NULL,      /* SelectFill */
  304.     NULL,      /* Command */
  305.     NULL,      /* SubItem */
  306.     NULL       /* NextSelect */
  307.   },
  308. };
  309.  
  310. struct MenuItem printsubitems2[] ={
  311.   {
  312.     &printsubitems2[1],  /* next item */
  313.     110, 0, 110, 9, /* LeftEdge, TopEdge, Width, Height */
  314.     ITEMENABLED | ITEMTEXT | HIGHCOMP | CHECKIT | CHECKED,
  315.     0xFFFF-1,       /* mutual exclude */
  316.     (APTR)&printsubtext2[0],/* ItemFill */
  317.     NULL,      /* SelectFill */
  318.     NULL,      /* Command */
  319.     NULL,      /* SubItem */
  320.     NULL       /* NextSelect */
  321.   },
  322.   {
  323.     NULL, /* next item */
  324.     110, 10, 110, 9,     /* LeftEdge, TopEdge, Width, Height */
  325.     ITEMENABLED | ITEMTEXT | HIGHCOMP | CHECKIT,
  326.     0xFFFF-2,       /* mutual exclude */
  327.     (APTR)&printsubtext2[1],/* ItemFill */
  328.     NULL,      /* SelectFill */
  329.     NULL,      /* Command */
  330.     NULL,      /* SubItem */
  331.     NULL       /* NextSelect */
  332.   },
  333. };
  334.  
  335. struct MenuItem projectitems[] = {
  336.   {
  337.     &projectitems[1],         /* next item */
  338.     0, 0, 100, 9,   /* LeftEdge, TopEdge, Width, Height */
  339.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  340.     0,              /* mutual exclude */
  341.     (APTR)&projectext[0],/* ItemFill */
  342.     NULL,      /* SelectFill */
  343.     NULL,      /* Command */
  344.     NULL,      /* SubItem */
  345.     NULL       /* NextSelect */
  346.   },
  347.   {
  348.     &projectitems[2],         /* next item */
  349.     0, 10, 100, 9,  /* LeftEdge, TopEdge, Width, Height */
  350.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  351.     0,              /* mutual exclude */
  352.     (APTR)&projectext[1],/* ItemFill */
  353.     NULL,      /* SelectFill */
  354.     NULL,      /* Command */
  355.     NULL,      /* SubItem */
  356.     NULL       /* NextSelect */
  357.   },
  358.   {
  359.     &projectitems[3],         /* next item */
  360.     0, 20, 100, 9,  /* LeftEdge, TopEdge, Width, Height */
  361.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  362.     0,              /* mutual exclude */
  363.     (APTR)&projectext[2],/* ItemFill */
  364.     NULL,      /* SelectFill */
  365.     NULL,      /* Command */
  366.     NULL,      /* SubItem */
  367.     NULL       /* NextSelect */
  368.   },
  369.   {
  370.     &projectitems[4],         /* next item */
  371.     0, 30, 100, 9,  /* LeftEdge, TopEdge, Width, Height */
  372.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  373.     0,              /* mutual exclude */
  374.     (APTR)&projectext[3],/* ItemFill */
  375.     NULL,      /* SelectFill */
  376.     NULL,      /* Command */
  377.     NULL,      /* SubItem */
  378.     NULL       /* NextSelect */
  379.   },
  380.   {
  381.     &projectitems[5],    /* next item */
  382.     0, 40, 100, 9,  /* LeftEdge, TopEdge, Width, Height */
  383.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  384.     0,              /* mutual exclude */
  385.     (APTR)&projectext[4],/* ItemFill */
  386.     NULL,      /* SelectFill */
  387.     NULL,      /* Command */
  388.     printsubitems,  /* SubItem */
  389.     NULL       /* NextSelect */
  390.   },
  391.   {
  392.     &projectitems[6],    /* next item */
  393.     0, 50, 100, 9,  /* LeftEdge, TopEdge, Width, Height */
  394.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  395.     0,              /* mutual exclude */
  396.     (APTR)&projectext[5],/* ItemFill */
  397.     NULL,      /* SelectFill */
  398.     NULL,      /* Command */
  399.     printsubitems2, /* SubItem */
  400.     NULL       /* NextSelect */
  401.   },
  402.  
  403.   {
  404.     NULL,      /* next item */
  405.     0, 60, 100, 9,  /* LeftEdge, TopEdge, Width, Height */
  406.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  407.     0,              /* mutual exclude */
  408.     (APTR)&projectext[6],/* ItemFill */
  409.     NULL,      /* SelectFill */
  410.     NULL,      /* Command */
  411.     NULL,      /* SubItem */
  412.     NULL       /* NextSelect */
  413.   }
  414. };
  415.  
  416. struct MenuItem edititems[] = {
  417.   {
  418.     &edititems[1],  /* next item */
  419.     0, 0, 100, 9,   /* LeftEdge, TopEdge, Width, Height */
  420.     ITEMTEXT | HIGHCOMP,
  421.     0,              /* mutual exclude */
  422.     (APTR)&editext[0],  /* ItemFill */
  423.     NULL,      /* SelectFill */
  424.     NULL,      /* Command */
  425.     NULL,      /* SubItem */
  426.     NULL       /* NextSelect */
  427.   },
  428.   {
  429.     &edititems[2],       /* next item */
  430.     0, 10, 100, 9,  /* LeftEdge, TopEdge, Width, Height */
  431.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  432.     0,              /* mutual exclude */
  433.     (APTR)&editext[1],/* ItemFill */
  434.     NULL,      /* SelectFill */
  435.     NULL,      /* Command */
  436.     NULL,      /* SubItem */
  437.     NULL       /* NextSelect */
  438.   },
  439.   {
  440.     &edititems[3],       /* next item */
  441.     0, 20, 100, 9,  /* LeftEdge, TopEdge, Width, Height */
  442.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  443.     0,              /* mutual exclude */
  444.     (APTR)&editext[2],/* ItemFill */
  445.     NULL,      /* SelectFill */
  446.     NULL,      /* Command */
  447.     NULL,      /* SubItem */
  448.     NULL       /* NextSelect */
  449.   },
  450.   {
  451.     &edititems[4],       /* next item */
  452.     0, 30, 100, 9,  /* LeftEdge, TopEdge, Width, Height */
  453.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  454.     0,              /* mutual exclude */
  455.     (APTR)&editext[3],/* ItemFill */
  456.     NULL,      /* SelectFill */
  457.     NULL,      /* Command */
  458.     NULL,      /* SubItem */
  459.     NULL       /* NextSelect */
  460.   },
  461.   {
  462.     NULL,      /* next item */
  463.     0, 40, 100, 9,  /* LeftEdge, TopEdge, Width, Height */
  464.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  465.     0,              /* mutual exclude */
  466.     (APTR)&editext[4],/* ItemFill */
  467.     NULL,      /* SelectFill */
  468.     NULL,      /* Command */
  469.     NULL,      /* SubItem */
  470.     NULL       /* NextSelect */
  471.   },
  472. };
  473.  
  474. struct MenuItem styleitems[] = {
  475.   {
  476.     &styleitems[1],      /* next item */
  477.     0,0,120+COMMWIDTH,9, /* LeftEdge, TopEdge, Width, Height */
  478.     ITEMENABLED | ITEMTEXT | HIGHCOMP | CHECKIT | COMMSEQ,
  479.     0xffff-1,       /* mutual exclude */
  480.     (APTR)&styletext[0],/* ItemFill */
  481.     NULL,      /* SelectFill */
  482.     'P',       /* Command */
  483.     NULL,      /* SubItem */
  484.     NULL       /* NextSelect */
  485.   },
  486.   {
  487.     &styleitems[2],      /* next item */
  488.     0,10,120+COMMWIDTH,9,     /* LeftEdge, TopEdge, Width, Height */
  489.     ITEMENABLED | ITEMTEXT | HIGHCOMP | CHECKIT | COMMSEQ,
  490.     1,              /* mutual exclude */
  491.     (APTR)&styletext[1],/* ItemFill */
  492.     NULL,      /* SelectFill */
  493.     'I',       /* Command */
  494.     NULL,      /* SubItem */
  495.     NULL       /* NextSelect */
  496.   },
  497.   {
  498.     &styleitems[3],      /* next item */
  499.     0,20,120+COMMWIDTH,9,     /* LeftEdge, TopEdge, Width, Height */
  500.     ITEMENABLED | ITEMTEXT | HIGHCOMP | CHECKIT | COMMSEQ,
  501.     1,              /* mutual exclude */
  502.     (APTR)&styletext[2],/* ItemFill */
  503.     NULL,      /* SelectFill */
  504.     'B',       /* Command */
  505.     NULL,      /* SubItem */
  506.     NULL       /* NextSelect */
  507.   },
  508.   {
  509.     NULL,      /* next item */
  510.     0,30,120+COMMWIDTH,9,     /* LeftEdge, TopEdge, Width, Height */
  511.     ITEMENABLED | ITEMTEXT | HIGHCOMP | CHECKIT | COMMSEQ,
  512.     1,              /* mutual exclude */
  513.     (APTR)&styletext[3],/* ItemFill */
  514.     NULL,      /* SelectFill */
  515.     'U',       /* Command */
  516.     NULL,      /* SubItem */
  517.     NULL       /* NextSelect */
  518.   },
  519. };
  520.  
  521. struct MenuItem coloritems[] = {
  522.   {
  523.     &coloritems[1], /* next item */
  524.     110,0,50,9,          /* LeftEdge, TopEdge, Width, Height */
  525.     ITEMENABLED | ITEMTEXT | HIGHBOX | CHECKIT,
  526.     0xFFFF-1,       /* mutual exclude */
  527.     (APTR)&colortext[0],/* ItemFill */
  528.     NULL,      /* SelectFill */
  529.     NULL,      /* Command */
  530.     NULL,      /* SubItem */
  531.     NULL       /* NextSelect */
  532.   },
  533.   {
  534.     &coloritems[2], /* next item */
  535.     110,10,50,9,    /* LeftEdge, TopEdge, Width, Height */
  536.     ITEMENABLED | ITEMTEXT | HIGHBOX | CHECKIT | CHECKED,
  537.     0xFFFF-2,       /* mutual exclude */
  538.     (APTR)&colortext[1],/* ItemFill */
  539.     NULL,      /* SelectFill */
  540.     NULL,      /* Command */
  541.     NULL,      /* SubItem */
  542.     NULL       /* NextSelect */
  543.   },
  544.   {
  545.     &coloritems[3], /* next item */
  546.     110,20,50,9,    /* LeftEdge, TopEdge, Width, Height */
  547.     ITEMENABLED | ITEMTEXT | HIGHBOX | CHECKIT,
  548.     0xFFFF-4,       /* mutual exclude */
  549.     (APTR)&colortext[2],/* ItemFill */
  550.     NULL,      /* SelectFill */
  551.     NULL,      /* Command */
  552.     NULL,      /* SubItem */
  553.     NULL       /* NextSelect */
  554.   },
  555.   {
  556.     NULL,      /* next item */
  557.     110,30,50,9,    /* LeftEdge, TopEdge, Width, Height */
  558.     ITEMENABLED | ITEMTEXT | HIGHBOX | CHECKIT,
  559.     0xFFFF-8,       /* mutual exclude */
  560.     (APTR)&colortext[3],/* ItemFill */
  561.     NULL,      /* SelectFill */
  562.     NULL,      /* Command */
  563.     NULL,      /* SubItem */
  564.     NULL       /* NextSelect */
  565.   },
  566. };
  567. struct MenuItem pcoloritems[] = {
  568.   {
  569.     &pcoloritems[1],     /* next item */
  570.     110,0,50,9 ,    /* LeftEdge, TopEdge, Width, Height */
  571.     ITEMENABLED | ITEMTEXT | HIGHBOX | CHECKIT,
  572.     0xFFFF-0x01,    /* mutual exclude */
  573.     (APTR)&colortext[0],/* ItemFill */
  574.     NULL,      /* SelectFill */
  575.     NULL,      /* Command */
  576.     NULL,      /* SubItem */
  577.     NULL       /* NextSelect */
  578.   },
  579.   {
  580.     &pcoloritems[2],     /* next item */
  581.     110,10,50,9,    /* LeftEdge, TopEdge, Width, Height */
  582.     ITEMENABLED | ITEMTEXT | HIGHBOX | CHECKIT,
  583.     0xFFFF-0x02,    /* mutual exclude */
  584.     (APTR)&colortext[1],/* ItemFill */
  585.     NULL,      /* SelectFill */
  586.     NULL,      /* Command */
  587.     NULL,      /* SubItem */
  588.     NULL       /* NextSelect */
  589.   },
  590.   {
  591.     &pcoloritems[3],     /* next item */
  592.     110,20,50,9,    /* LeftEdge, TopEdge, Width, Height */
  593.     ITEMENABLED | ITEMTEXT | HIGHBOX | CHECKIT | CHECKED,
  594.     0xFFFF-0x04,    /* mutual exclude */
  595.     (APTR)&colortext[2],/* ItemFill */
  596.     NULL,      /* SelectFill */
  597.     NULL,      /* Command */
  598.     NULL,      /* SubItem */
  599.     NULL       /* NextSelect */
  600.   },
  601.   {
  602.     NULL,      /* next item */
  603.     110,30,50,9,    /* LeftEdge, TopEdge, Width, Height */
  604.     ITEMENABLED | ITEMTEXT | HIGHBOX | CHECKIT,
  605.     0xFFFF-0x08,    /* mutual exclude */
  606.     (APTR)&colortext[3],/* ItemFill */
  607.     NULL,      /* SelectFill */
  608.     NULL,      /* Command */
  609.     NULL,      /* SubItem */
  610.     NULL       /* NextSelect */
  611.   },
  612. };
  613.  
  614. struct MenuItem formatitems[] = {
  615.   {
  616.     &formatitems[1],     /* next item */
  617.     0,0,110,9,      /* LeftEdge, TopEdge, Width, Height */
  618.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  619.     0xFFFF-1,       /* mutual exclude */
  620.     (APTR)&formatext[0],/* ItemFill */
  621.     NULL,      /* SelectFill */
  622.     NULL,      /* Command */
  623.     coloritems,          /* SubItem */
  624.     NULL       /* NextSelect */
  625.   },
  626.   {
  627.     NULL,      /* next item */
  628.     0,10,110,9,          /* LeftEdge, TopEdge, Width, Height */
  629.     ITEMENABLED | ITEMTEXT | HIGHCOMP,
  630.     0xFFFF-2,       /* mutual exclude */
  631.     (APTR)&formatext[1],/* ItemFill */
  632.     NULL,      /* SelectFill */
  633.     NULL,      /* Command */
  634.     pcoloritems,    /* SubItem */
  635.     NULL       /* NextSelect */
  636.   },
  637. };
  638.  
  639. struct Menu menus[] = {
  640.   {
  641.     &menus[1],      /* next menu */
  642.     10+0, 0, 100, 0,     /* LeftEdge, TopEdge, Width, Height */
  643.     MENUENABLED,    /* flags */
  644.     "Project",      /* name */
  645.     projectitems    /* first item */
  646.   },
  647.   {
  648.     &menus[2],      /* next menu */
  649.     10+100, 0, 100, 0,   /* LeftEdge, TopEdge, Width, Height */
  650.     NULL,      /* flags */
  651.     "Edit",         /* name */
  652.     edititems       /* first item */
  653.   },
  654.   {
  655.     &menus[3],      /* next menu */
  656.     10+300, 0, 100, 0,   /* LeftEdge, TopEdge, Width, Height */
  657.     MENUENABLED,    /* flags */
  658.     "Style",        /* name */
  659.     styleitems      /* first item */
  660.   },
  661.   {
  662.     NULL,      /* next menu */
  663.     10+400, 0, 100, 0,   /* LeftEdge, TopEdge, Width, Height */
  664.     MENUENABLED,    /* flags */
  665.     "Format",       /* name */
  666.     formatitems          /* first item */
  667.   },
  668. };
  669.  
  670. initMenus( window )
  671. struct Window *window;
  672. {
  673. SetMenuStrip( window, menus );
  674. }
  675.  
  676.